# ~xxxxx/scripts/Makefile
# 冒号加等号 (:=) 用于立即计算变量值并展开其中的其他变量引用。
# 普通等号 (=) 则用于延迟计算变量值，直到变量被实际使用时才展开。
CC := gcc
# 定义了一个变量CFLAGS，用于存储编译器的编译选项。
# -Wall：编译时显示所有警告信息。
# -O3：设置优化等级为3，对代码进行高度优化。
# -I../include：指定头文件的搜索路径为当前目录的上一级的include目录
CFLAGS := -Wall -O3 -I../include
# 这个变量通常用于编译时链接pthread库，使得编译生成的可执行文件能够使用多线程功能。
Libs = -lpthread
Target := IPV4_server
# wildcard函数会返回匹配到的文件列表，即使没有匹配到文件也不会报错。
Source := $(wildcard ./*.c)
# 将源文件列表（$(Source)）中的每个.c文件转换为对应的.o文件，并将它们放入一个名为Objs的变量中。
Objs := $(patsubst %.c,%.o,$(Source))
# 定义模块列表
Modules += mlib channel mytbf list server 
# 将每个Modules列表中的元素添加后缀.o
AllObjs := $(addsuffix /*.o,$(Modules))

